1. Field of the Invention
This invention relates to a computer system having a multiprocessor construction, and more particularly to a composite data processing system and its control method for managing efficiently common data resources in a multiprocessor system of the type which does not share a main storage but does share an extended storage.
2. Description of the Prior Art
Configuration of a computer system having a multiprocessor construction has been employed in order to improve performance by load sharing and reliability by diversification of risks. A so-called "tightly coupled multiprocessor system" wherein a plurality of instruction processors share a main storage and a so-called "loosely coupled multiprocessor system" wherein a plurality of data processors (each of which may by itself be composed of a single processor or a tightly coupled multiprocessor) share an external storage are known generally as the forms of the multiprocessor systems. The problem with these multiprocessor systems is ,an efficient management method for accessing the common data resource inside the systems, and particularly, a serialization method for accessing the common data resource by a plurality of processors while keeping data coordination. Various contrivances have been made in the past to solve this problem.
In the tightly coupled multiprocessor system, a mechanism for serializing accesses to the common resources can be constituted by making access to control information on the main storage by use of a specific instruction, and an example of such a mechanism is disclosed in Japanese Patent Laid-Open No. 92061/1987. The specific instruction hereby mentioned is the one that reads a state variable on the main storage, stores the value in a preservation area and executes the operation of changing the state variable in accordance with the value as an unseparable operation. In HITAC M-series processors, for example, CS (Compare and Swap) command is a typical command corresponding to such an instruction. (The CS command is discussed in the reference described above, too.)
In this CS command, the data or its part (hereinafter referred to as the "first operand") that has in advance been read (loaded) from a designated area on the main storage into one of the general purpose registers inside the instruction processor for calculation processing is compared with the data or its part (hereinafter referred to as the "first double word of second operand") presently existing on the designated area on the main storage described above (or after the calculation processing), and if the result of the comparison proves coincident, rewrites the data in the designated area of the main storage (hereinafter referred to as the "second operand". In this case, it is the same as the first double of the second operand) by the new data as the result of processing (hereinafter referred to as the third operand", which is stored, for example, in the other general purpose register in the instruction processor). (In other words, the new data is stored in the designated area of the main storage described above.) This comparison is made in order to prevent the following error. Namely, if the designated area of the common main storage is rewritten by other instruction processors during the period from the load operation to the store operation in the tightly coupled multiprocessor (or in other words, if the result of the comparison is not coincident), the data obtained as the result of processing by other instruction processors will be lost if the data is stored on the rewritten area and the wrong data is stored as such. If the result of the comparison is not coincident, the operation is carried out again from the beginning (from the load operation). Hereinafter, an instruction for such an operation will be referred to as the "CS type instruction".
As to the loosely coupled multiprocessor, on the other hand, a method which communicates control information between data processing units and serializes the access to the common data resource is disclosed in Japanese Patent Laid-Open No 145349/1987. A method which disposes a specific controller for making exclusive control between the data processing units is disclosed in Japanese Patent Laid-Open No. 81748/1984. In the loosely coupled multiprocessor, an instruction corresponding to the CS type instruction in the tightly coupled multiprocessor does not exist generally. Therefore, the overhead of the external storage access is by far greater than that of the main storage access and a CS type instruction for gaining access to the external storage is not realistic from the aspect of performance.
It is a recent trend to use an extended storage as a new memory hierarchy which buries the time difference between the main storage and the external storage. The extended storage can be directly read/written by a specific instruction from an instruction processor and unlike a disk memory held in a disk controller, it does not need the disposition of a channel apparatus between it and the main storage. Furthermore, its access time is greater than that of the main storage but is smaller than that of the external storage. Here, though it is possible to conceive a multiprocessor system which does not share the main storage but shares the extended storage and the external storage, such a multiprocessor system is out of the scope of the conventional technology techniques described above.
Generally speaking, the looser the degree of coupling of a multiprocessor system, the easier it becomes to improve the flexibility and reliability of the overall system. (A loose multiprocessor system can contain a tighter multiprocessor system as part of its constitutent elements.) However, the communication overhead between the data processing units for managing the access to the shared data resource increases, on the contrary. The multiprocessor system of the form which shares the extended storage is the one that is positioned at an intermediate position between the conventional tightly coupled multiprocessor system and the loosely coupled multiprocessor system, and it has a means for accomplishing a system having a higher flexibility than the tightly coupled multiprocessor system with a lower overhead than the loosely coupled multiprocessor system. When a practical application system is constituted as a multiprocessor system, the configuration to be employed may be determined by taking into consideration the functions and performance required by such a system. Generally, such a system can be accomplished as a composite form of multiprocessors having various forms.
In the so-called "loosely coupled multiprocessor system" wherein a plurality of data processing units do not share the main storage but a file, a method of controlling the access to a common data resource is disclosed, for example, in Japanese Patent Laid-Open No. 145349/1988. This reference describes the method which couples the plurality of data processing units by a communication apparatus and makes the serialization control by transmitting a lock request to a lock manager on a data processing unit of an lock master determined for each common data resource. This reference describes also a method of continuing the system operation by letting another data processing unit function as a new master for a common data resource for which a certain data processing unit has been the master, when the latter undergoes break-down.
The second method for accomplishing the exclusive control of the common data resource by the communication between the data processing units in the loosely coupled multiprocessor system is disclosed in Japanese Patent Laid-Open No. 172764/1983. In this known reference, the lock manager sends the lock requests between the data processing units and makes the exclusive control between the data processing units by the majority voting system which makes the lock request effective when the majority of all the data processing units approve the lock request
Japanese Patent Laid-Open No. 81748/1984 discloses a method which disposes a specific controller in order to execute the serialization control between a plurality of data processing units. In this known reference, each data processing unit issues a lock or unlock instruction for the specific controller described above. Since the exclusive control is made by the single controller which is separate from the data processing units in accordance with this method, this method can reduce the serialization exclusive control overhead between the data processing units and can easily detect a deadlock bridging between a plurality of data processing units.
When the serialization control of the access to the common data resource is carried out in the loosely coupled multiprocessor, the greatest problem is the communication overhead In Japanese Patent Laid-Open Nos. 145349/1987 and 172764/1983 described above, the communication overhead of the exclusive control information between the data processing units coupled by the communication apparatus becomes the problem. In Japanese Patent Laid-Open No. 81748/1984, the communication overhead of the exclusive control information between the data processing units and an exclusive controller for the exclusive control becomes the problem. In order to control dispersedly the lock queue in each data processing unit, the technique described in Japanese Patent Laid-Open Nos. 145349/1988 and 72764/1983 must exchange the lock queue information between the data processing units so as to detect the so-called "global deadlock" where the lock queue loop bridges between the data processing units, and invites a large communication overhead. In Japanese Patent Laid-Open No. 145349/1987 described above, when a certain data processing unit gets out of order and assigns its master right to another data processor, the communication between the lock managers becomes necessary. Each subsystem disposes the buffer pool and makes buffering in order to reduce the number of accesses to the file but to keep coordination of the data stored in these buffer pools, and communication for synchronizing the occurrence of data updating must be made between the subsystems.
Furthermore, when the common file gets out of order, each subsystem must align the journal information which records updating of the data in the time series and merges it with the backup copy of the file content, and communication between the data processing units becomes necessary in order to give a common unique time sequence to all the subsystems. Since Japanese Patent Laid-Open No. 81748/1984 described above manages the lock information by the specific controller, it can considerably reduce the excessive communication overhead described above but the specific hardware is necessary and moreover, there is the possibility that this controller results in the bottleneck of performance, reliability, extensibility and economy of the system as a whole.
An extended storage, which is positioned substantially in the same line as the main storage and can be shared between a plurality of data processing units, is about to be accomplished in addition to the memory hierarchy of the main storage - secondary storage of the conventional computer system. The extended storage is a storage that can be used generally in computer systems and its economy is high. However, Japanese Patent Laid-Open No. 81748/1984 described above does not at all mention the method of using this common extended storage.